<template>
  <!-- h5页面显示 -->
  <div id="echart-box"></div>
</template>

<script>
// 引入 echarts 核心模块，核心模块提供了 echarts 使用必须要的接口。
import * as echarts from 'echarts/core';
// 引入柱状图图表，图表后缀都为 Chart
import { BarChart, LineChart } from 'echarts/charts';
// 引入提示框，标题，直角坐标系组件，组件后缀都为 Component
import {
  TooltipComponent,
  TitleComponent,
  GridComponent
} from 'echarts/components';
// 引入 Canvas 渲染器，注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import { CanvasRenderer } from 'echarts/renderers';
import { onMounted, reactive } from '@vue/runtime-core';
// 注册必须的组件
echarts.use([
  TitleComponent,
  TooltipComponent,
  GridComponent,
  BarChart,
  LineChart,
  CanvasRenderer
]);
export default {
  setup() {
    const colors = ['#5470C6', '#91CC75', '#EE6666'];
    let option = reactive({
      color: colors,
      xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
        name: '星期几'
      },
      yAxis: [
        {
          type: 'value',
          name: 'test'
          // 百分比显示y轴
          // min: 0,
          // max: 100,
          // axisLabel: {
          //   formatter: '{value} %'
          // }
        },
        {
          type: 'value',
          name: 'test'
          // 百分比显示y轴
          // min: 0,
          // max: 100,
          // axisLabel: {
          //   formatter: '{value} %'
          // }
        }
      ],
      series: [
        {
          // 在 ECharts 中，我们使用字符串 '-' 表示空数据
          data: [10, 10, '-', 15, 10, 5, 35],
          type: 'line' // bar 柱形图  line 折线图
          // smooth: true // 平滑曲线
        }
      ],
      title: {
        text: '测试echart（标题）',
        // subtext: '子标题',
        textStyle: {
          fontSize: 22,
          fontWeight: 'bold',
          color: 'red'
        },
        subtextStyle: {
          fontSize: 16,
          color: '#000'
        }
      },
      //提示框取默认值，即鼠标移动到柱状图会显示内容
      tooltip: {
        trigger: 'axis', //触发类型；轴触发，axis则鼠标hover到一条柱状图显示全部数据，item则鼠标hover到折线点显示相应数据，
        axisPointer: {
          type: 'line', //默认为line，line直线，cross十字准星，shadow阴影
          lineStyle: {
            color: 'red'
          }
        }
      }
    });
    // let option = {
    //   color: colors,
    //   tooltip: {
    //     trigger: 'axis',
    //     axisPointer: {
    //       type: 'cross'
    //     }
    //   },
    //   grid: {
    //     right: '20%'
    //   },
    //   toolbox: {
    //     feature: {
    //       dataView: { show: true, readOnly: false },
    //       restore: { show: true },
    //       saveAsImage: { show: true }
    //     }
    //   },
    //   legend: {
    //     data: ['Evaporation', 'Precipitation', 'Temperature']
    //   },
    //   xAxis: [
    //     {
    //       type: 'category',
    //       axisTick: {
    //         alignWithLabel: true
    //       },
    //       // prettier-ignore
    //       data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    //     }
    //   ],
    //   yAxis: [
    //     {
    //       type: 'value',
    //       name: 'Evaporation',
    //       position: 'right',
    //       alignTicks: true,
    //       axisLine: {
    //         show: true,
    //         lineStyle: {
    //           color: colors[0]
    //         }
    //       },
    //       axisLabel: {
    //         formatter: '{value} ml'
    //       }
    //     },
    //     {
    //       type: 'value',
    //       name: 'Precipitation',
    //       position: 'right',
    //       alignTicks: true,
    //       offset: 80,
    //       axisLine: {
    //         show: true,
    //         lineStyle: {
    //           color: colors[1]
    //         }
    //       },
    //       axisLabel: {
    //         formatter: '{value} ml'
    //       }
    //     },
    //     {
    //       type: 'value',
    //       name: '温度',
    //       position: 'left',
    //       alignTicks: true,
    //       axisLine: {
    //         show: true,
    //         lineStyle: {
    //           color: colors[2]
    //         }
    //       },
    //       axisLabel: {
    //         formatter: '{value} °C'
    //       }
    //     }
    //   ],
    //   series: [
    //     {
    //       name: 'Evaporation',
    //       type: 'bar',
    //       data: [
    //         2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3
    //       ]
    //     },
    //     {
    //       name: 'Precipitation',
    //       type: 'bar',
    //       yAxisIndex: 1,
    //       data: [
    //         2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
    //       ]
    //     },
    //     {
    //       name: 'Temperature',
    //       type: 'line',
    //       yAxisIndex: 2,
    //       data: [
    //         2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2
    //       ]
    //     }
    //   ]
    // };
    onMounted(() => {
      // 接下来的使用就跟之前一样，初始化图表，设置配置项
      let echartBox = document.getElementById('echart-box');
      let myChart = echarts.init(echartBox);
      myChart.setOption(option);
      // 绑定事件 都是小写
      myChart.on('click', function (params) {
        // 控制台打印数据的名称
        console.log(params);
      });
    });
    return {};
  },
  components: {}
};
</script>

<style scoped lang="scss">
#echart-box {
  width: 600px;
  height: 400px;
}
</style>
